Loading [MathJax]/jax/output/CommonHTML/jax.js

Exploratory Data Analysis (EDA)

Machine Learning - পাইথন ডেটা সায়েন্স (Python Data Science)
171
171

Exploratory Data Analysis (EDA) হল ডেটা সায়েন্সের একটি গুরুত্বপূর্ণ প্রক্রিয়া, যার মাধ্যমে ডেটাকে গভীরভাবে বিশ্লেষণ করা হয়। EDA-এর মূল উদ্দেশ্য হল ডেটা সেটের বিভিন্ন বৈশিষ্ট্য, প্যাটার্ন, সম্পর্ক, এবং ত্রুটি বা অস্বাভাবিকতা সনাক্ত করা। এটি মূলত ডেটা সেটের কাঠামো, বৈশিষ্ট্য, এবং প্রকৃতির সাথে পরিচিত হওয়ার জন্য প্রথম পর্যায়ে করা হয়, যা পরবর্তী বিশ্লেষণ এবং মডেলিংয়ের জন্য উপকারী।

EDA একটি গণনামূলক ও গ্রাফিকাল বিশ্লেষণ প্রক্রিয়া, যেখানে ডেটার গাণিতিক এবং ভিজ্যুয়াল উপস্থাপনা মাধ্যমে বিভিন্ন তথ্য সংগ্রহ করা হয়। এটি ডেটার অভ্যন্তরীণ সম্পর্ক এবং বৈশিষ্ট্য বুঝতে সাহায্য করে, যার ফলে সঠিক সিদ্ধান্ত নেওয়া এবং মডেল তৈরি করা সহজ হয়।


EDA এর প্রধান ধাপগুলো

১. ডেটা সংগ্রহ (Data Collection)

প্রথমেই ডেটা সংগ্রহ করা হয়, যা সাধারণত একটি ডেটাসেট হতে পারে (যেমন CSV, Excel, SQL ডেটাবেস বা API থেকে প্রাপ্ত)। এই ডেটা সংগ্রহের পরে, EDA প্রক্রিয়া শুরু হয়।

২. ডেটা প্রক্রিয়াকরণ (Data Preprocessing)

ডেটা প্রক্রিয়াকরণ একটি গুরুত্বপূর্ণ পদক্ষেপ, যেখানে ডেটাকে বিশ্লেষণের জন্য প্রস্তুত করা হয়। এর মধ্যে অন্তর্ভুক্ত:

  • Missing Values: মিসিং মান চিহ্নিত করা এবং যথাযথভাবে পূর্ণ করা।
  • Outliers: অস্বাভাবিক বা আউটলায়ার মান চিহ্নিত করা।
  • Data Transformation: ডেটাকে প্রয়োজনীয় আকারে রূপান্তর করা।

৩. স্ট্যাটিস্টিক্যাল সারাংশ (Statistical Summary)

ডেটার মৌলিক গাণিতিক বিবরণ এবং পরিসংখ্যান বিশ্লেষণ করা হয়। এটি অন্তর্ভুক্ত:

  • Mean: গড় মান
  • Median: মধ্যম মান
  • Standard Deviation: মান বিচ্যুতি
  • Quantiles: কোয়ান্টাইল এবং পার্সেন্টাইল
  • Skewness: বিশ্লেষণ করে ডেটার সিমেট্রি বুঝা যায়
  • Kurtosis: ডেটার তীক্ষ্ণতা বা চিত্রের খাড়া হওয়া।

উদাহরণ:

import pandas as pd

# ডেটা লোড
data = pd.read_csv("dataset.csv")

# মৌলিক পরিসংখ্যান
print(data.describe())

৪. ভিজ্যুয়ালাইজেশন (Visualization)

EDA-তে ভিজ্যুয়ালাইজেশন অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি ডেটার সম্পর্ক, প্যাটার্ন এবং প্রবণতাগুলি আরও ভালোভাবে বুঝতে সহায়ক। কিছু সাধারণ ভিজ্যুয়ালাইজেশন প্রযুক্তি:

  • Histogram: ডেটার বণ্টন (distribution) দেখতে সাহায্য করে।
  • Box Plot: আউটলায়ার চিহ্নিত করতে সহায়ক।
  • Scatter Plot: দুইটি চলক বা ভেরিয়েবলের মধ্যে সম্পর্ক বুঝতে সাহায্য করে।
  • Heatmap: সম্পর্ক বিশ্লেষণ (correlation) করার জন্য ব্যবহৃত হয়।
  • Pair Plot: একাধিক ভেরিয়েবলের মধ্যে সম্পর্ক প্রদর্শন করে।

উদাহরণ:

import seaborn as sns
import matplotlib.pyplot as plt

# হিস্টোগ্রাম
sns.histplot(data['column_name'], kde=True)
plt.show()

# বক্স প্লট
sns.boxplot(x=data['column_name'])
plt.show()

# স্ক্যাটার প্লট
sns.scatterplot(x=data['column1'], y=data['column2'])
plt.show()

# হিটম্যাপ
sns.heatmap(data.corr(), annot=True, cmap="coolwarm")
plt.show()

৫. ডেটা সম্পর্ক বিশ্লেষণ (Correlation Analysis)

EDA-তে একটি গুরুত্বপূর্ণ পদক্ষেপ হল ভেরিয়েবলগুলির মধ্যে সম্পর্ক বা কোরিলেশন বিশ্লেষণ করা। সম্পর্ক বিশ্লেষণের মাধ্যমে আপনি বুঝতে পারেন যে দুটি ভেরিয়েবল একে অপরের সাথে সম্পর্কিত কি না, এবং সেই সম্পর্ক কেমন (যেমন, পজিটিভ কোরিলেশন, নেগেটিভ কোরিলেশন)।

উদাহরণ:

# কোরিলেশন ম্যাট্রিক্স
correlation = data.corr()
print(correlation)

# হিটম্যাপের মাধ্যমে কোরিলেশন ভিজ্যুয়ালাইজেশন
sns.heatmap(correlation, annot=True, cmap="coolwarm")
plt.show()

EDA এর সুবিধা

  1. ডেটার প্রাথমিক উপলব্ধি (Initial Understanding of Data): EDA ডেটার গঠন, বৈশিষ্ট্য, এবং আউটলায়ার সনাক্ত করতে সহায়ক। এটি আপনার পরবর্তী বিশ্লেষণ বা মডেলিংয়ের জন্য গাইডলাইন প্রদান করে।
  2. মডেলিংয়ের জন্য প্রস্তুতি (Preparation for Modeling): EDA আপনার মডেলিং প্রক্রিয়া সহজ করে তোলে, কারণ আপনি ডেটার অবস্থা বুঝে কোন মডেল ব্যবহার করবেন তা নির্ধারণ করতে পারেন।
  3. ত্রুটি বা অস্বাভাবিকতা সনাক্তকরণ (Identifying Errors or Outliers): EDA সাহায্যে আপনি মিসিং মান, অস্বাভাবিক বা আউটলায়ার চিহ্নিত করতে পারেন এবং সেগুলি সংশোধন করতে পারেন।
  4. ডেটার সম্পর্ক এবং প্যাটার্ন খুঁজে পাওয়া (Finding Patterns and Relationships): EDA ডেটার মধ্যে সম্পর্ক এবং প্যাটার্ন খুঁজে বের করতে সহায়ক, যা পরবর্তী বিশ্লেষণ বা সিদ্ধান্ত গ্রহণে গুরুত্বপূর্ণ।

সারাংশ

Exploratory Data Analysis (EDA) হল ডেটা বিশ্লেষণের প্রথম ধাপ যা ডেটার প্রকৃতি এবং কাঠামো বুঝতে সাহায্য করে। এটি স্ট্যাটিস্টিক্যাল সারাংশ, ভিজ্যুয়ালাইজেশন, এবং সম্পর্ক বিশ্লেষণের মাধ্যমে ডেটার অন্তর্নিহিত প্যাটার্ন এবং ত্রুটিগুলি বের করতে সহায়ক। EDA একটি অত্যন্ত গুরুত্বপূর্ণ প্রক্রিয়া, যা পরবর্তী মডেলিং বা ডেটা বিশ্লেষণের জন্য সহায়ক গাইডলাইন সরবরাহ করে।

Content added By

EDA এর ভূমিকা এবং প্রয়োগ

107
107

Exploratory Data Analysis (EDA) হল একটি প্রাথমিক বিশ্লেষণ প্রক্রিয়া, যা ডেটা সেটের মধ্যে প্যাটার্ন, সম্পর্ক এবং অস্বাভাবিকতা (outliers) সনাক্ত করতে সহায়ক। এটি ডেটার গঠন, বৈশিষ্ট্য এবং প্রাথমিক ইনসাইট জানতে ব্যবহৃত হয়, যা পরে আরও গভীর বিশ্লেষণ বা মডেলিং প্রক্রিয়ায় সহায়ক হতে পারে। EDA একটি অত্যন্ত গুরুত্বপূর্ণ পদক্ষেপ, কারণ এটি ডেটার প্রকৃত চরিত্র বোঝার জন্য এবং সিদ্ধান্ত গ্রহণের প্রক্রিয়া সহজ করার জন্য সহায়ক।

EDA ডেটার মধ্যে যে কোনো ত্রুটি, মিসিং ডেটা, অস্বাভাবিকতা, বা সম্ভাব্য সম্পর্কগুলি সনাক্ত করতে সহায়ক, যাতে পরবর্তী পর্যায়ে কার্যকর বিশ্লেষণ এবং মডেল তৈরি করা যায়।


EDA এর ভূমিকা

  1. ডেটার ধরন বোঝা: EDA ডেটার ধরন এবং গঠন বিশ্লেষণ করতে সহায়ক। এটি ডেটার সাথে সম্পর্কিত কোনও অস্বাভাবিকতা বা ত্রুটি সনাক্ত করতে সহায়ক।
  2. ডেটার মধ্যে প্যাটার্ন এবং সম্পর্ক চিহ্নিত করা: EDA বিভিন্ন পরিসংখ্যানিক এবং ভিজ্যুয়াল কৌশল ব্যবহার করে ডেটার মধ্যে সম্পর্ক এবং প্যাটার্নগুলি খুঁজে বের করতে সহায়ক।
  3. অস্বাভাবিকতা (Outliers) সনাক্তকরণ: EDA এর মাধ্যমে ডেটা সেটে যে কোন অস্বাভাবিক বা অবাঞ্ছিত উপাদান (যেমন, অত্যধিক উচ্চ বা কম মান) সনাক্ত করা যায়।
  4. ডেটার গুণমান যাচাই: EDA ডেটার গুণমান পরীক্ষা করে যেমন, মিসিং ভ্যালু, ডুপ্লিকেট ডেটা, এবং ভুল টাইপের মান (যেমন, টেক্সটের জায়গায় সংখ্যা) সনাক্ত করা যায়।
  5. বিভিন্ন ফিচারের বিশ্লেষণ: EDA সাধারণত ডেটার বিভিন্ন ফিচার বা কলামের সাথে সম্পর্কিত তথ্য তুলে ধরে। যেমন, ডেটার গড়, মানক বিচ্যুতি, পরিসর ইত্যাদি পরিমাপের মাধ্যমে।
  6. ডেটা প্রক্রিয়াকরণ প্রক্রিয়া শুরু করা: EDA এর মাধ্যমে ডেটার চাহিদা অনুযায়ী পরিষ্কার করা এবং প্রি-প্রসেসিং কাজগুলি যেমন, মিসিং ভ্যালু পূর্ণ করা, ক্যাটেগোরিক্যাল ডেটা এনকোডিং করা ইত্যাদি করা হয়।

EDA এর প্রয়োগ

EDA অনেক ধরনের বিশ্লেষণ এবং ডেটা প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়, বিশেষত মেশিন লার্নিং মডেল তৈরি করার পূর্বে ডেটা বিশ্লেষণের জন্য।

১. ডেটা বিশ্লেষণ এবং ভিজ্যুয়ালাইজেশন

EDA প্রাথমিকভাবে বিভিন্ন পরিসংখ্যানিক এবং ভিজ্যুয়ালাইজেশন কৌশল ব্যবহার করে ডেটার গভীর বিশ্লেষণ করা হয়। Python-এ Matplotlib, Seaborn, Pandas ইত্যাদি লাইব্রেরি EDA কার্যক্রমের জন্য অত্যন্ত জনপ্রিয়।

  • Histogram: ডেটার বণ্টন বা ফ্রিকোয়েন্সি চিত্রিত করতে ব্যবহৃত হয়।
  • Box Plot: ডেটার ছড়ানো, মধ্যমা (median) এবং outliers চিত্রিত করতে ব্যবহৃত হয়।
  • Pair Plot: একাধিক ভ্যারিয়েবলগুলির মধ্যে সম্পর্ক বোঝানোর জন্য ব্যবহৃত হয়।

উদাহরণ:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# ডেটাসেট লোড
df = sns.load_dataset('iris')

# Pairplot এর মাধ্যমে সম্পর্ক বিশ্লেষণ
sns.pairplot(df)
plt.show()

২. মিসিং ডেটা এবং আউটলাইয়ার সনাক্তকরণ

EDA-এর মাধ্যমে আপনি মিসিং ডেটা চিহ্নিত করতে পারেন, যেমন কোনও সেল খালি (NaN) হতে পারে বা ভুল মান থাকতে পারে। এর মাধ্যমে আপনি সেই ডেটা পূর্ণ করার জন্য একটি প্রক্রিয়া নির্ধারণ করতে পারবেন, যেমন, গড়, মধ্যক বা পূর্ববর্তী মান দিয়ে পূর্ণ করা।

উদাহরণ:

# মিসিং ডেটা চেক
print(df.isnull().sum())
  • Outliers: EDA আউটলাইয়ার (অস্বাভাবিক মান) সনাক্ত করতে সহায়ক, যা ডেটার বৈশিষ্ট্যের বাইরে অস্বাভাবিকভাবে বেরিয়ে যেতে পারে।

৩. পরিসংখ্যানিক পরিমাপ এবং উপসংহার

EDA সাধারণত পরিসংখ্যানিক পরিমাপ যেমন mean, median, mode, standard deviation ইত্যাদি বিশ্লেষণ করে। এগুলি ডেটার কেন্দ্রীয় প্রবণতা এবং বৈচিত্র্য বোঝার জন্য ব্যবহৃত হয়।

# পরিসংখ্যানিক পরিমাপ
print(df.describe())

৪. ডেটার সম্পর্ক বিশ্লেষণ (Correlation Analysis)

ডেটার বিভিন্ন ফিচারের মধ্যে সম্পর্ক বা correlation বিশ্লেষণ করা EDA এর একটি গুরুত্বপূর্ণ অংশ। Correlation Matrix বা Heatmap ব্যবহার করে দুটি ভেরিয়েবলের মধ্যে সম্পর্ক দেখা যায়।

উদাহরণ:

# Correlation matrix প্লট
corr = df.corr()
sns.heatmap(corr, annot=True, cmap='coolwarm')
plt.show()

৫. ফিচার সিলেকশন এবং ডেটা প্রস্তুতি

EDA এর মাধ্যমে ডেটার বিভিন্ন ফিচারের মধ্যে সম্পর্ক বিশ্লেষণ করার পর, আপনি সিদ্ধান্ত নিতে পারেন কোন ফিচারগুলি মডেল তৈরির জন্য সবচেয়ে গুরুত্বপূর্ণ। এটি পরবর্তী মডেলিং বা মেশিন লার্নিং কাজের জন্য সহায়ক।


EDA এর মাধ্যমে বিভিন্ন ডেটার সমস্যা সমাধান

  1. মিসিং ডেটা: EDA প্রাথমিকভাবে ডেটাতে মিসিং ভ্যালু চিহ্নিত করতে এবং সেগুলির জন্য সমাধান তৈরি করতে সহায়ক।
  2. ডুপ্লিকেট ডেটা: EDA দ্বারা আপনি ডেটাতে ডুপ্লিকেট রেকর্ড সনাক্ত করতে পারেন, যা পরে মুছে ফেলা বা ঠিক করা যেতে পারে।
  3. অস্বাভাবিক ডেটা (Outliers): EDA আউটলাইয়ার সনাক্ত করার জন্য box plots বা scatter plots ব্যবহার করে আপনি সেগুলির বিরুদ্ধে সিদ্ধান্ত নিতে পারবেন।
  4. ডেটার সম্পর্ক বোঝা: EDA-এর মাধ্যমে আপনি ডেটার বিভিন্ন ফিচারের মধ্যে সম্পর্ক বিশ্লেষণ করতে পারবেন, যা পরে মডেল তৈরি বা ডেটা সিদ্ধান্ত নিতে সহায়ক।

সারাংশ

Exploratory Data Analysis (EDA) হল একটি প্রাথমিক, কিন্তু অত্যন্ত গুরুত্বপূর্ণ পর্যায় ডেটা বিশ্লেষণে। এটি ডেটার বিভিন্ন দিক বিশ্লেষণ করতে সহায়ক যেমন, ডেটার গঠন, প্যাটার্ন, সম্পর্ক, outliers, এবং মিসিং ডেটা ইত্যাদি। EDA ব্যবহারের মাধ্যমে, আপনি ডেটার প্রাথমিক তথ্য প্রাপ্তি, তার বৈশিষ্ট্য সম্বন্ধে ধারণা লাভ করতে পারবেন, যা পরে আরও গভীর বিশ্লেষণ বা মডেলিং প্রক্রিয়ায় সহায়ক হবে। Python-এ NumPy, Pandas, Matplotlib, Seaborn ইত্যাদি লাইব্রেরি ব্যবহার করে EDA কার্যক্রম সহজভাবে সম্পাদন করা যায়।

Content added By

Univariate এবং Bivariate Analysis

116
116

Univariate এবং Bivariate Analysis হল ডেটা বিশ্লেষণের দুটি গুরুত্বপূর্ণ প্রক্রিয়া যা ডেটার মধ্যে সম্পর্ক, প্যাটার্ন, এবং ট্রেন্ড শনাক্ত করতে ব্যবহৃত হয়। এগুলি ডেটা সায়েন্স, পরিসংখ্যান এবং অন্যান্য বিশ্লেষণমূলক কাজের জন্য অত্যন্ত গুরুত্বপূর্ণ।


১. Univariate Analysis (একক চলক বিশ্লেষণ)

Univariate analysis হল একটি মাত্র চলকের (variable) বিশ্লেষণ। এতে একক চলকের জন্য ডেটার বেসিক চরিত্র, যেমন গড়, মধ্যম মান, ব্যাপ্তি, বিচ্যুতি, বা ফ্রিকোয়েন্সি বিতরণ বিশ্লেষণ করা হয়। Univariate analysis মূলত একটি চলকের স্ট্যাটিস্টিক্যাল সারাংশ বের করার জন্য ব্যবহৃত হয় এবং এটি ডেটার মৌলিক বৈশিষ্ট্য বুঝতে সাহায্য করে।

Univariate Analysis এর প্রধান উদ্দেশ্য:

  • ডেটার বেসিক চরিত্র বা বৈশিষ্ট্য বোঝা
  • ডেটা সেন্ট্রালিটি (mean, median, mode) এবং ডিসপারশন (variance, standard deviation) বের করা
  • ডেটার বিতরণ এবং ঘনত্ব বুঝতে সাহায্য করা
  • অস্বাভাবিক বা আউটলায়ার চিহ্নিত করা

Univariate Analysis এর জন্য ব্যবহৃত কিছু স্ট্যাটিস্টিক:

  • Mean (গড়): সমস্ত মানের যোগফল এবং মোট সংখ্যা দিয়ে গড় বের করা।
  • Median (মাধ্যম): ডেটার মাঝে যেটি মধ্যবর্তী মান।
  • Mode (মোড): সবচেয়ে ঘনিষ্ঠ বা পুনরাবৃত্ত মান।
  • Standard Deviation (স্ট্যান্ডার্ড ডেভিয়েশন): ডেটার বিচ্যুতি বা spread measure।
  • Range (পরিসীমা): সর্বোচ্চ এবং সর্বনিম্ন মানের পার্থক্য।
  • Variance (বিচ্যুতি): ডেটার মানগুলি গড়ের কাছাকাছি কতটা ছড়িয়ে আছে তার পরিমাপ।

উদাহরণ:

import pandas as pd

# ডেটা তৈরি
data = {'Age': [23, 25, 22, 30, 28, 22, 25, 30, 28, 29]}
df = pd.DataFrame(data)

# গড়, মধ্যম মান, মোড, স্ট্যান্ডার্ড ডেভিয়েশন বের করা
mean_age = df['Age'].mean()
median_age = df['Age'].median()
mode_age = df['Age'].mode()[0]
std_dev_age = df['Age'].std()

print(f"Mean: {mean_age}, Median: {median_age}, Mode: {mode_age}, Standard Deviation: {std_dev_age}")

Visualization:

Univariate analysis এ histogram, boxplot এবং density plots খুবই জনপ্রিয় গ্রাফ।

import matplotlib.pyplot as plt

# Histogram
plt.hist(df['Age'], bins=5, color='skyblue', edgecolor='black')
plt.title('Age Distribution')
plt.xlabel('Age')
plt.ylabel('Frequency')
plt.show()

# Boxplot
plt.boxplot(df['Age'], vert=False)
plt.title('Age Boxplot')
plt.show()

২. Bivariate Analysis (দ্বি-চলক বিশ্লেষণ)

Bivariate analysis হল দুটি চলকের (variable) মধ্যে সম্পর্ক বিশ্লেষণ। এই বিশ্লেষণের মাধ্যমে আপনি দুটি চলকের মধ্যে সম্পর্কের ধরন (যেমন, লিনিয়ার, নন-লিনিয়ার) এবং তাদের একে অপরের সাথে সম্পর্ক বোঝার চেষ্টা করেন। এটি আপনাকে দুটি চলকের মধ্যে সম্পর্কের শক্তি এবং প্রকৃতি (যেমন, ধনাত্মক, ঋণাত্মক বা কোন সম্পর্ক নেই) চিহ্নিত করতে সহায়ক।

Bivariate Analysis এর প্রধান উদ্দেশ্য:

  • দুটি চলকের মধ্যে সম্পর্ক এবং সম্পর্কের শক্তি বিশ্লেষণ
  • ডেটার মধ্যে সহাবস্থান এবং পারস্পরিক সম্পর্ক বোঝা
  • ভবিষ্যদ্বাণী বা সিদ্ধান্ত নেওয়ার জন্য সম্পর্ক ব্যবহার করা

Bivariate Analysis এর জন্য ব্যবহৃত কিছু মেট্রিক্স:

  • Correlation (সম্পর্ক): দুটি চলকের মধ্যে সম্পর্কের শক্তি এবং দিক (ধনাত্মক বা ঋণাত্মক)। এটি Pearson's correlation coefficient দ্বারা পরিমাপ করা হয়, যার মান -1 থেকে +1 পর্যন্ত হতে পারে।
  • Scatter Plot (স্ক্যাটার প্লট): দুটি চলকের মধ্যে সম্পর্ক প্রদর্শনের জন্য একটি গ্রাফিকাল উপস্থাপনা।

উদাহরণ:

import pandas as pd

# ডেটা তৈরি
data = {'Height': [5.5, 6.2, 5.8, 6.0, 5.6, 5.9, 6.1],
        'Weight': [65, 72, 68, 75, 70, 72, 74]}
df = pd.DataFrame(data)

# সম্পর্ক বের করা
correlation = df['Height'].corr(df['Weight'])

print(f"Correlation between Height and Weight: {correlation}")

Visualization:

Bivariate analysis এ scatter plot খুবই জনপ্রিয়, যা দুটি চলকের মধ্যে সম্পর্ক চিত্রিত করে।

import matplotlib.pyplot as plt

# Scatter plot
plt.scatter(df['Height'], df['Weight'], color='red')
plt.title('Height vs Weight')
plt.xlabel('Height')
plt.ylabel('Weight')
plt.show()

Univariate এবং Bivariate Analysis এর মধ্যে পার্থক্য:

FeatureUnivariate AnalysisBivariate Analysis
Number of Variablesএকক চলক (Single variable)দুটি চলক (Two variables)
Purposeএকক চলকের স্ট্যাটিস্টিক্যাল সারাংশ বের করাদুটি চলকের মধ্যে সম্পর্ক বিশ্লেষণ
Examplesগড়, মধ্যম মান, মোড, স্ট্যান্ডার্ড ডেভিয়েশনসম্পর্ক, স্ক্যাটার প্লট, কোরিলেশন
VisualizationsHistogram, Boxplot, Density plotScatter plot, Heatmap
Outcomeডেটার মৌলিক বৈশিষ্ট্য, প্যাটার্ন চিহ্নিত করাদুটি চলকের মধ্যে সম্পর্ক এবং সম্পর্কের ধরন

সারাংশ

Univariate Analysis হল একক চলকের পরিসংখ্যান বিশ্লেষণ, যেখানে Bivariate Analysis দুটি চলকের মধ্যে সম্পর্ক বিশ্লেষণ করে। Univariate analysis ডেটার মৌলিক চরিত্র, যেমন গড়, মধ্যম মান, এবং আউটলায়ার চিহ্নিত করতে ব্যবহৃত হয়, যখন Bivariate analysis দুটি চলকের মধ্যে সম্পর্ক এবং সম্পর্কের শক্তি বোঝার জন্য ব্যবহৃত হয়। Bivariate analysis-এ সাধারণত স্ক্যাটার প্লট এবং সম্পর্কের গাণিতিক মাপ (যেমন কোরিলেশন) ব্যবহৃত হয়।

Content added By

Correlation এবং Covariance Analysis

144
144

Correlation এবং Covariance হল দুটি পরিসংখ্যানিক পরিমাপ যা দুটি চলক বা ভেরিয়েবল-এর মধ্যে সম্পর্ক বিশ্লেষণ করতে ব্যবহৃত হয়। এগুলি আমাদের বুঝতে সাহায্য করে কিভাবে দুটি ভেরিয়েবল একে অপরের সাথে সম্পর্কিত এবং একটি ভেরিয়েবলের পরিবর্তন অন্য ভেরিয়েবলের পরিবর্তনে কিভাবে প্রভাব ফেলে।

১. Covariance:

Covariance দুটি চলক বা ভেরিয়েবলের মধ্যে সম্পর্কের পরিমাপ দেয়। এটি পরিমাপ করে কিভাবে দুটি ভেরিয়েবল একে অপরের সাথে একই দিকে (positive covariance) বা বিপরীত দিকে (negative covariance) চলাচল করে। Covariance-এর মান দুটি ভেরিয়েবলের একে অপরের সাথে সম্পর্কের শক্তি এবং দিক নির্দেশ করে, কিন্তু এটি সেই সম্পর্কের শক্তি নির্দেশ করে না এবং এর একক কোনো নির্দিষ্ট স্কেল থাকে না।

Covariance সূত্র:

Cov(X,Y)=(XiˉX)(YiˉY)n

এখানে:

  • X এবং Y হলো দুটি চলক
  • ˉX এবং ˉY হলো যথাক্রমে X এবং Y-এর গড়
  • n হলো ডেটার সংখ্যা

Covariance Interpretation:

  • Positive Covariance: যদি দুইটি চলক বা ভেরিয়েবল একই দিকে চলতে থাকে (যেমন, উভয় ভেরিয়েবল বাড়ছে বা কমছে), তবে তাদের covariance পজিটিভ হবে।
  • Negative Covariance: যদি দুটি চলক বিপরীত দিকে চলে (একটি বাড়ে এবং অন্যটি কমে), তবে তাদের covariance নেগেটিভ হবে।
  • Zero Covariance: যদি দুইটি চলক একে অপরের সাথে কোনো সম্পর্ক না থাকে (অর্থাৎ, একটির পরিবর্তন অন্যটির উপর কোনো প্রভাব ফেলে না), তবে covariance শূন্য হবে।

২. Correlation:

Correlation দুটি চলকের মধ্যে সম্পর্কের শক্তি এবং দিক নির্দেশ করে, কিন্তু এটি একটি স্কেল-মুক্ত পরিমাপ, যা চলকদের মধ্যে সম্পর্কের শক্তি নির্ধারণ করতে সাহায্য করে। Correlation সাধারণত Pearson correlation coefficient দ্বারা পরিমাপ করা হয়, যা একটি মান প্রদান করে -১ থেকে +১ পর্যন্ত।

Pearson Correlation Coefficient সূত্র:

r=Cov(X,Y)σXσY

এখানে:

  • Cov(X,Y) হলো দুটি ভেরিয়েবলের covariance
  • σX এবং σY হলো যথাক্রমে X এবং Y-এর মান বিচ্যুতি (standard deviation)

Correlation Interpretation:

  • r = +1: দুটি চলক মধ্যে পূর্ণ পজিটিভ সম্পর্ক। অর্থাৎ, একটির মান বৃদ্ধি পাওয়ার সাথে সাথে অপরটির মানও বৃদ্ধি পায়।
  • r = -1: দুটি চলক মধ্যে পূর্ণ নেগেটিভ সম্পর্ক। অর্থাৎ, একটির মান বৃদ্ধি পাওয়ার সাথে সাথে অপরটির মান কমে যায়।
  • r = 0: দুটি চলক মধ্যে কোনো সম্পর্ক নেই। অর্থাৎ, একটির পরিবর্তন অপরটির উপর কোনো প্রভাব ফেলে না।
  • 0 < r < 1: দুটি চলক মধ্যে পজিটিভ সম্পর্ক, তবে সম্পর্কের শক্তি ১ এর চেয়ে কম।
  • -1 < r < 0: দুটি চলক মধ্যে নেগেটিভ সম্পর্ক, তবে সম্পর্কের শক্তি -১ এর চেয়ে কম।

৩. Correlation এবং Covariance এর মধ্যে পার্থক্য

বৈশিষ্ট্যCovarianceCorrelation
মূল্য পরিসীমাকোনো নির্দিষ্ট পরিসীমা নেই (যেকোনো মান হতে পারে)-1 থেকে +1 পর্যন্ত
এককএকক নির্ধারিত নয় (যেকোনো একক হতে পারে)একক-মুক্ত (স্ট্যান্ডার্ড পরিমাপ)
সম্পর্কের শক্তিশক্তি নির্ধারণ করতে পারেন নাসম্পর্কের শক্তি এবং দিক নির্ধারণ করে
ব্যবহারদুটি ভেরিয়েবলের মধ্যে সম্পর্কের দিক এবং শক্তি বোঝায়দুটি ভেরিয়েবলের মধ্যে সম্পর্কের শক্তি এবং দিকের সমন্বিত পরিমাপ

৪. Pandas-এ Covariance এবং Correlation বিশ্লেষণ

Pandas-এ সহজেই covariance এবং correlation বের করা যায়।

উদাহরণ ১: Covariance বের করা

import pandas as pd

# DataFrame তৈরি করা
data = {'X': [1, 2, 3, 4, 5], 'Y': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)

# Covariance বের করা
cov_matrix = df.cov()
print(cov_matrix)

এখানে, cov() ফাংশনটি DataFrame এর মধ্যে covariance বের করে দেয়।

উদাহরণ ২: Correlation বের করা

# Correlation বের করা
correlation_matrix = df.corr()
print(correlation_matrix)

এখানে, corr() ফাংশনটি DataFrame এর মধ্যে correlation বের করে দেয়।


সারাংশ

Covariance এবং Correlation দুটি পরিসংখ্যানিক পরিমাপ যা ভেরিয়েবলের মধ্যে সম্পর্ক বুঝতে সাহায্য করে। Covariance সম্পর্কের দিক এবং শক্তি নির্ধারণ করে, তবে এটি একক নির্ধারণে সক্ষম নয় এবং এর মান স্কেল-মুক্ত নয়। অপরদিকে, Correlation ভেরিয়েবলের মধ্যে সম্পর্কের শক্তি এবং দিক বোঝায়, এবং এটি একটি স্কেল-মুক্ত পরিমাপ (যা -1 থেকে +1 এর মধ্যে থাকে)। Correlation সম্পর্কের শক্তি এবং দিক সম্পর্কে আরও বিস্তারিত তথ্য প্রদান করে।

Content added By

Data Distribution এবং Outliers Detection

164
164

ডেটা সায়েন্স এবং পরিসংখ্যানের ক্ষেত্রের গুরুত্বপূর্ণ দুটি ধারণা হলো Data Distribution এবং Outliers Detection। এগুলি ডেটার বৈশিষ্ট্য বুঝতে সাহায্য করে এবং মডেল ট্রেনিং বা ডেটা বিশ্লেষণের প্রক্রিয়ায় সহায়ক হয়।


১. Data Distribution

Data Distribution হল ডেটার বন্টন বা ব্যাবস্থাপন যেটি বিভিন্ন উপায়ে নির্ধারণ করা যেতে পারে। এটি মূলত একটি গাণিতিক ধারণা যা একটি ডেটা সেটের মানগুলি কিভাবে সাজানো হয়েছে বা তারা কোথায় কেন্দ্রীভূত আছে তা বুঝতে সাহায্য করে। ডেটা ডিস্ট্রিবিউশন বোঝা আমাদের জন্য গুরুত্বপূর্ণ কারণ এটি ডেটা পরিসংখ্যানের কাঠামো এবং বৈশিষ্ট্য নির্ধারণে সহায়ক।

Data Distribution এর কিছু প্রধান প্রকার:

  1. Normal Distribution (গৌণ বন্টন):
    • এটি একটি গুরুত্বপূর্ণ ডেটা বন্টন যেখানে ডেটার অধিকাংশ মান মধ্যম মান এর কাছাকাছি থাকে এবং বন্টনটি ঘণ্টা আকারে থাকে।
    • এটি একটি সিমেট্রিক্যাল (Symmetrical) বন্টন যার মানগুলো গড়ের (mean) আশেপাশে কেন্দ্রিত থাকে।
    • গণনা: এটি গৌণ (bell-shaped) আকারে থাকে, যা ডেটার অধিকাংশ মান গড়ের কাছাকাছি হতে দেখায়। উদাহরণ: মানুষের উচ্চতা, আইকিউ স্কোর ইত্যাদি।
    • কনসেপ্ট: mean = median = mode
  2. Uniform Distribution (সামান্য বন্টন):
    • যেখানে সমস্ত মান সমানভাবে বন্টিত থাকে। এটি একটি সোজা (Flat) লাইন তৈরি করে। উদাহরণ: ডাইসের ফেলার ফলাফল।
  3. Binomial Distribution (দ্বিপদী বন্টন):
    • যেখানে দুটি সম্ভাব্য ফলাফল থাকতে পারে (যেমন, সাফল্য বা ব্যর্থতা)। উদাহরণ: পয়সা ফেললে মাথা বা পুচ্ছ।
  4. Exponential Distribution (এক্সপোনেনশিয়াল বন্টন):
    • যেখানে একটি নির্দিষ্ট রেটের সাথে কোনও ঘটনা ঘটে এবং এই রেটের সাথে সংযুক্ত একটি ডিস্ট্রিবিউশন পাওয়া যায়।
  5. Skewed Distribution (বিভ্রান্ত বন্টন):
    • যখন ডেটার বন্টন একদিকে ভারী থাকে এবং অন্যদিকে কিছুটা ছড়িয়ে থাকে, তখন এই বন্টনটি স্কিউড (skewed) হয়। দুটি প্রকারের স্কিউড বন্টন আছে:
      • Right Skewed (Positive Skew): ডেটা ডান দিকে ঝুঁকেপড়া থাকে, যেমন আয় বা বয়সের ডিস্ট্রিবিউশন।
      • Left Skewed (Negative Skew): ডেটা বাম দিকে ঝুঁকেপড়া থাকে, যেমন ছাত্রদের পরীক্ষার মার্কস।

Data Distribution ভিজ্যুয়ালাইজেশন:

ডেটার বন্টন বুঝতে হিস্টোগ্রাম বা কোর্নেল ডেনসিটি এস্টিমেট (Kernel Density Estimate, KDE) চার্ট ব্যবহার করা হয়। উদাহরণস্বরূপ:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# কিছু নমুনা ডেটা তৈরি করা
data = pd.Series([2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 18, 22, 25, 30])

# Hist plot এবং KDE plot
sns.histplot(data, kde=True)
plt.show()

২. Outliers Detection (আউটলায়ার সনাক্তকরণ)

Outliers বা অস্বাভাবিক মান হল এমন ডেটা পয়েন্ট যা অন্যান্য ডেটা পয়েন্টের তুলনায় অস্বাভাবিকভাবে আলাদা বা দূরে থাকে। আউটলায়ারগুলি ডেটা বিশ্লেষণ এবং মডেলিংয়ের ফলাফলকে প্রভাবিত করতে পারে, তাই এগুলি সনাক্ত করা এবং নির্ধারণ করা গুরুত্বপূর্ণ।

Outliers সনাক্ত করার পদ্ধতিগুলি:

  1. Statistical Methods:
    • Z-score: এটি একটি স্ট্যাটিস্টিক্যাল পদ্ধতি যা সনাক্ত করে কিভাবে একটি মান গড় থেকে বিচ্যুত। সাধারণত, যদি Z-score মানের পরিসীমা 3 এর বাইরে থাকে (3σ), তাহলে সেটি আউটলায়ার হতে পারে।
    • IQR (Interquartile Range): IQR একটি পরিসংখ্যান পদ্ধতি যা ডেটার ২৫তম (Q1) এবং ৭৫তম (Q3) পার্সেন্টাইলের মধ্যে পার্থক্য দেখায়। সাধারণভাবে, যদি কোনো ডেটা পয়েন্ট Q1 - 1.5IQR অথবা Q3 + 1.5IQR এর বাইরে থাকে, তাহলে সেটি আউটলায়ার হিসেবে চিহ্নিত হয়।

Z-Score দিয়ে Outliers Detection:

import numpy as np
import pandas as pd
from scipy import stats

# কিছু নমুনা ডেটা তৈরি
data = pd.Series([10, 12, 12, 14, 15, 16, 18, 100])

# Z-score হিসেব করা
z_scores = np.abs(stats.zscore(data))
print("Z-scores:", z_scores)

# Outliers সনাক্ত করা
outliers = data[z_scores > 2]  # যেকোনো Z-score 2 এর বেশি হলে আউটলায়ার
print("Outliers:", outliers)

IQR দিয়ে Outliers Detection:

# IQR দিয়ে আউটলায়ার সনাক্তকরণ
Q1 = data.quantile(0.25)
Q3 = data.quantile(0.75)
IQR = Q3 - Q1

lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR

outliers = data[(data < lower_bound) | (data > upper_bound)]
print("Outliers detected:", outliers)

Outliers-এর প্রভাব এবং সমাধান

  • প্রভাব: আউটলায়ারগুলি মডেলিংয়ের সময় মডেলকে প্রভাবিত করতে পারে, যেমনঃ লিনিয়ার রিগ্রেশন, ক্লাস্টারিং বা কৃত্রিম নিউরাল নেটওয়ার্কে।
  • সমাধান:
    • আউটলায়ার মুছে ফেলা।
    • আউটলায়ারগুলিকে সংশোধন বা পরিবর্তন করা।
    • ডেটা ট্রান্সফরমেশন (যেমন: লোগারিদমিক ট্রান্সফরমেশন) প্রয়োগ করা।

সারাংশ

Data Distribution এবং Outliers Detection হল ডেটা বিশ্লেষণ এবং মডেলিংয়ের দুটি অত্যন্ত গুরুত্বপূর্ণ দিক। Data Distribution ডেটার বৈশিষ্ট্য এবং গঠন বিশ্লেষণ করতে সাহায্য করে, যখন Outliers Detection ডেটার অস্বাভাবিক বা দূরের মান সনাক্ত করতে সহায়ক, যা মডেলিং এবং পরিসংখ্যান বিশ্লেষণের সঠিকতা প্রভাবিত করতে পারে। Outliers সঠিকভাবে চিহ্নিত এবং পরিচালনা করা ডেটা বিশ্লেষণে সঠিক ফলাফল পেতে গুরুত্বপূর্ণ।

Content added By

Data Visualization এবং Summary Statistics

144
144

Data Visualization এবং Summary Statistics দুটি গুরুত্বপূর্ণ দিক যা ডেটা বিশ্লেষণ এবং সিদ্ধান্ত গ্রহণের প্রক্রিয়াতে সহায়ক। Data Visualization আমাদের ডেটার প্যাটার্ন, প্রবণতা, এবং সম্পর্ক দেখতে সাহায্য করে, যখন Summary Statistics ডেটার একটি সারসংক্ষেপ প্রদান করে যা মূল বৈশিষ্ট্য এবং বিভাজন নির্দেশ করে।


১. Data Visualization (ডেটা ভিজ্যুয়ালাইজেশন)

Data Visualization হল ডেটা গ্রাফিক্যাল উপস্থাপনা, যা ডেটার প্রবণতা এবং সম্পর্ককে সহজে বুঝতে সহায়ক। এটি গাণিতিক এবং পরিসংখ্যান বিশ্লেষণের ফলাফলগুলি ভিজ্যুয়ালি উপস্থাপন করতে ব্যবহৃত হয়।

Python-এর Matplotlib, Seaborn, এবং Plotly ইত্যাদি জনপ্রিয় লাইব্রেরি ডেটা ভিজ্যুয়ালাইজেশনের জন্য ব্যবহৃত হয়।

১.১ Matplotlib (বেসিক ভিজ্যুয়ালাইজেশন)

Matplotlib একটি শক্তিশালী এবং জনপ্রিয় Python লাইব্রেরি যা সহজে গ্রাফ এবং প্লট তৈরি করতে সহায়ক। এর সাহায্যে আপনি বিভিন্ন ধরনের প্লট তৈরি করতে পারেন, যেমন line plots, scatter plots, bar charts, histograms, pie charts, ইত্যাদি।

উদাহরণ: Line Plot

import matplotlib.pyplot as plt

# ডেটা
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# লাইন প্লট তৈরি
plt.plot(x, y)
plt.title('Line Plot Example')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')

# প্লট দেখানো
plt.show()

উদাহরণ: Bar Chart

import matplotlib.pyplot as plt

# ডেটা
categories = ['A', 'B', 'C', 'D']
values = [10, 20, 15, 25]

# বার প্লট তৈরি
plt.bar(categories, values)
plt.title('Bar Chart Example')
plt.xlabel('Categories')
plt.ylabel('Values')

# প্লট দেখানো
plt.show()

১.২ Seaborn (এডভান্সড ভিজ্যুয়ালাইজেশন)

Seaborn Matplotlib-এর ওপর ভিত্তি করে তৈরি একটি লাইব্রেরি যা আরও উন্নত এবং আকর্ষণীয় ভিজ্যুয়ালাইজেশন তৈরি করতে সহায়ক। Seaborn ব্যবহার করা খুবই সহজ এবং এটি আরও সুন্দর এবং অর্থপূর্ণ গ্রাফ তৈরি করে।

উদাহরণ: Scatter Plot with Regression Line

import seaborn as sns
import matplotlib.pyplot as plt

# ডেটাসেট লোড
tips = sns.load_dataset('tips')

# স্ক্যাটার প্লট তৈরি
sns.regplot(x='total_bill', y='tip', data=tips)

# প্লট দেখানো
plt.title('Scatter Plot with Regression Line')
plt.show()

১.৩ Plotly (ইন্টারেকটিভ ভিজ্যুয়ালাইজেশন)

Plotly একটি লাইব্রেরি যা ইন্টারেকটিভ প্লট তৈরি করতে ব্যবহৃত হয়। এটি জটিল ভিজ্যুয়ালাইজেশন যেমন 3D গ্রাফ, ড্যাশবোর্ড তৈরি করতে সক্ষম।

উদাহরণ: Scatter Plot

import plotly.express as px

# ডেটাসেট লোড
tips = px.data.tips()

# স্ক্যাটার প্লট তৈরি
fig = px.scatter(tips, x="total_bill", y="tip", color="sex", title="Scatter Plot with Plotly")

# প্লট দেখানো
fig.show()

২. Summary Statistics (সারাংশ পরিসংখ্যান)

Summary Statistics হল ডেটার একটি সংক্ষিপ্ত সারাংশ যা আমাদের ডেটার মূল বৈশিষ্ট্য বা বিশ্লেষণ উপস্থাপন করে। এটি আমাদের ডেটার গড়, বিস্তার, স্কিউনেস, এবং অন্যান্য গাণিতিক উপাদান জানাতে সহায়ক।

Python-এর Pandas লাইব্রেরি summary statistics বের করতে সহায়ক এবং এটি ডেটা বিশ্লেষণের জন্য অত্যন্ত জনপ্রিয়।

২.১ Descriptive Statistics (বর্ণনামূলক পরিসংখ্যান)

Descriptive Statistics ডেটার মৌলিক গুণাবলী যেমন গড়, স্ট্যান্ডার্ড ডেভিয়েশন, এবং কোয়ারটাইল মান বের করতে সহায়ক।

উদাহরণ: Descriptive Statistics (গড়, স্ট্যান্ডার্ড ডেভিয়েশন, মিনিমাম, ম্যাক্সিমাম)

import pandas as pd

# একটি সিম্পল DataFrame তৈরি
data = {'Age': [24, 27, 22, 32, 29], 'Salary': [50000, 60000, 55000, 70000, 65000]}
df = pd.DataFrame(data)

# বর্ণনামূলক পরিসংখ্যান
print(df.describe())

আউটপুট:

             Age         Salary
count   5.000000      5.000000
mean   26.800000  62000.000000
std     4.027692   7586.051942
min    22.000000  50000.000000
25%    24.000000  55000.000000
50%    27.000000  60000.000000
75%    29.000000  65000.000000
max    32.000000  70000.000000

২.২ Mean, Median, Mode (গড়, মধ্যক, মোড)

  • Mean: সমস্ত উপাদানের যোগফল ভাগ করে মোট উপাদানের সংখ্যা দিয়ে।
  • Median: উপাদানগুলোকে ছোট থেকে বড় পর্যন্ত সাজানোর পর মধ্যবর্তী মান।
  • Mode: যে মানটি সবচেয়ে বেশি বার পুনরাবৃত্তি হয়।

উদাহরণ: Mean, Median, Mode

# গড়, মধ্যক এবং মোড বের করা
mean_age = df['Age'].mean()
median_age = df['Age'].median()
mode_age = df['Age'].mode()[0]

print(f"Mean Age: {mean_age}")
print(f"Median Age: {median_age}")
print(f"Mode Age: {mode_age}")

আউটপুট:

Mean Age: 26.8
Median Age: 27.0
Mode Age: 24

২.৩ Variance and Standard Deviation (বৈচিত্র্য এবং স্ট্যান্ডার্ড ডেভিয়েশন)

  • Variance: ডেটার স্কোয়ারড ডেভিয়েশন থেকে গড় বিচ্যুতি।
  • Standard Deviation: ডেটার গড় বিচ্যুতির পরিমাণ।

উদাহরণ: Variance and Standard Deviation

# বৈচিত্র্য এবং স্ট্যান্ডার্ড ডেভিয়েশন বের করা
variance_age = df['Age'].var()
std_dev_age = df['Age'].std()

print(f"Variance in Age: {variance_age}")
print(f"Standard Deviation in Age: {std_dev_age}")

আউটপুট:

Variance in Age: 16.25
Standard Deviation in Age: 4.027692307358965

৩. Correlation (সাংগঠনিক সম্পর্ক)

Correlation হল দুটি ভেরিয়েবলের মধ্যে সম্পর্ক বা সংযোগ। এটি একটি সংখ্যাগত পরিমাপ যা দুইটি ভেরিয়েবলের মধ্যে সম্পর্কের শক্তি এবং দিক নির্দেশ করে।

উদাহরণ: Correlation Coefficient

# কোরিলেশন বের করা
correlation = df['Age'].corr(df['Salary'])
print(f"Correlation between Age and Salary: {correlation}")

আউটপুট:

Correlation between Age and Salary: 0.6432966481949242

সারাংশ

  • Data Visualization: এটি ডেটাকে গ্রাফিক্যালভাবে উপস্থাপন করে, যা ডেটার প্যাটার্ন, প্রবণতা এবং সম্পর্ক বুঝতে সহায়ক। Python এর Matplotlib, Seaborn, এবং Plotly লাইব্রেরি এর জন্য ব্যবহৃত হয়।
  • Summary Statistics: এটি ডেটার মৌলিক গুণাবলী সম্পর্কে তথ্য প্রদান করে, যেমন গড়, স্ট্যান্ডার্ড ডেভিয়েশন, কোয়ারটাইল, কোরিলেশন ইত্যাদি। Pandas লাইব্রেরি ব্যবহার করে সহজেই এই পরিসংখ্যান বের করা যায়।
Content added By
Promotion